package 链表;

public class NC33合并两个有序链表 {

    /**
     * 将两个有序的链表合并为一个新链表，要求新的链表是通过拼接两个链表的节点来生成的，且合并后新链表依然有序。
     *
     * 示例1
     * 输入
     * 复制
     * {1},{2}
     * 返回值
     * 复制
     * {1,2}
     * 示例2
     * 输入
     * 复制
     * {2},{1}
     * 返回值
     * 复制
     * {1,2}
     */

    public ListNode mergeTwoLists (ListNode l1, ListNode l2) {
        ListNode temp=new ListNode(-1);
        ListNode pre=temp;
        ListNode pre1=l1;
        ListNode pre2=l2;
        while (pre1!=null&&pre2!=null){

            if(pre1.val>pre2.val){
                pre.next=pre2;
                pre2=pre2.next;
            }else{
                pre.next=pre1;
                pre1=pre1.next;
            }


            pre=pre.next;
        }

        if(pre1==null){
            pre.next=pre2;
        }else{
            pre.next=pre1;
        }

        return temp.next;
    }

}
